/* Copyright (c) 2012-2014, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
 * only version 2 as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */

&soc {
	mdss_mdp: qcom,mdss_mdp@fd900000 {
		compatible = "qcom,mdss_mdp";
		reg = <0xfd900000 0x22100>,
			<0xfd924000 0x1000>;
		reg-names = "mdp_phys", "vbif_phys";
		interrupts = <0 72 0>;
		vdd-supply = <&gdsc_mdss>;

		qcom,max-bandwidth-low-kbps = <2300000>;
		qcom,max-bandwidth-high-kbps = <3000000>;

		/* Bus Scale Settings */
		qcom,msm-bus,name = "mdss_mdp";
		qcom,msm-bus,num-cases = <3>;
		qcom,msm-bus,num-paths = <1>;
		qcom,msm-bus,vectors-KBps =
			<22 512 0 0>,
			<22 512 0 6400000>,
			<22 512 0 6400000>;

		/* Fudge factors */
		qcom,mdss-ab-factor = <2 1>;		/* 2 times    */
		qcom,mdss-ib-factor = <6 5>;		/* 1.2 times  */
		qcom,mdss-clk-factor = <5 4>;		/* 1.25 times */

		qcom,max-clk-rate = <320000000>;
		qcom,mdss-pipe-vig-off = <0x00001200 0x00001600
					       0x00001A00>;
		qcom,mdss-pipe-rgb-off = <0x00001E00 0x00002200
					       0x00002600>;
		qcom,mdss-pipe-dma-off = <0x00002A00 0x00002E00>;
		qcom,mdss-pipe-vig-fetch-id = <1 4 7>;
		qcom,mdss-pipe-rgb-fetch-id = <16 17 18>;
		qcom,mdss-pipe-dma-fetch-id = <10 13>;

		qcom,mdss-pipe-vig-xin-id = <0 4 8>;
		qcom,mdss-pipe-rgb-xin-id = <1 5 9>;
		qcom,mdss-pipe-dma-xin-id = <2 10>;

		qcom,mdss-smp-data = <22 4096>;

		qcom,mdss-ctl-off = <0x00000600 0x00000700 0x00000800
				     0x00000900 0x0000A00>;
		qcom,mdss-mixer-intf-off = <0x00003200 0x00003600
					    0x00003A00>;
		qcom,mdss-mixer-wb-off = <0x00003E00 0x00004200>;
		qcom,mdss-dspp-off = <0x00004600 0x00004A00 0x00004E00>;
		qcom,mdss-wb-off = <0x00011100 0x00013100 0x00015100
				    0x00017100 0x00019100>;
		qcom,mdss-intf-off = <0x00021100 0x00021300
					   0x00021500 0x00021700>;

		qcom,mdss-has-wfd-blk;
		qcom,vbif-settings = <0x0004 0x00000001>,
				     <0x00D8 0x00000707>,
				     <0x00F0 0x00000030>,
				     <0x0124 0x00000001>,
				     <0x0178 0x00000FFF>,
				     <0x017C 0x0FFF0FFF>,
				     <0x0160 0x22222222>,
				     <0x0164 0x00002222>;
		qcom,mdp-settings = <0x02E0 0x000000E9>,
				    <0x02E4 0x00000055>,
				    <0x03AC 0xC0000CCC>,
				    <0x03B4 0xC0000CCC>,
				    <0x03BC 0x00CCCCCC>,
				    <0x04A8 0x0CCCC0C0>,
				    <0x04B0 0xCCCCC0C0>,
				    <0x04B8 0xCCCCC000>;

		/* buffer parameters to calculate prefill bandwidth */
		qcom,mdss-prefill-outstanding-buffer-bytes = <1024>;
		qcom,mdss-prefill-y-buffer-bytes = <4096>;
		qcom,mdss-prefill-scaler-buffer-lines-bilinear = <2>;
		qcom,mdss-prefill-scaler-buffer-lines-caf = <4>;
		qcom,mdss-prefill-post-scaler-buffer-pixels = <0>;
		qcom,mdss-prefill-pingpong-buffer-pixels = <4096>;
		qcom,mdss-prefill-fbc-lines = <2>;

		mdss_fb0: qcom,mdss_fb_primary {
			cell-index = <0>;
			compatible = "qcom,mdss-fb";
			qcom,memory-reservation-type = "EBI1";
			qcom,memory-reservation-size = <0x800000>;
			qcom,memblock-reserve = <0x03200000 0x01E00000>;
		};

		mdss_fb1: qcom,mdss_fb_external {
			cell-index = <1>;
			compatible = "qcom,mdss-fb";
		};

		mdss_fb2: qcom,mdss_fb_wfd {
			cell-index = <2>;
			compatible = "qcom,mdss-fb";
		};
	};

	mdss_dsi0: qcom,mdss_dsi@fd922800 {
		compatible = "qcom,mdss-dsi-ctrl";
		label = "MDSS DSI CTRL->0";
		cell-index = <0>;
		reg = 	<0xfd922800 0x1f8>,
			<0xfd922b00 0x2b0>,
			<0xfdf30000 0x108>;
		reg-names = "dsi_ctrl", "dsi_phy", "mmss_misc_phys";
		vdd-supply = <&pm8941_l22>;
		vddio-supply = <&pm8941_l12>;
		vdda-supply = <&pm8941_l2>;
		qcom,mdss-fb-map = <&mdss_fb0>;
		qcom,mdss-mdp = <&mdss_mdp>;
		qcom,platform-reset-gpio = <&pm8941_gpios 19 0>;
		qcom,platform-enable-gpio = <&msmgpio 58 0>;
		qcom,platform-te-gpio = <&msmgpio 12 0>;
		qcom,platform-strength-ctrl = [ff 06];
		qcom,platform-bist-ctrl = [00 00 b1 ff 00 00];
		qcom,platform-regulator-settings = [03 09 03 00 20 00 01];
		qcom,platform-lane-config = [00 00 00 00 00 00 00 01 97
			00 00 00 00 05 00 00 01 97
			00 00 00 00 0a 00 00 01 97
			00 00 00 00 0f 00 00 01 97
			00 c0 00 00 00 00 00 01 bb];
		qcom,platform-supply-entry1 {
				qcom,supply-name = "vdd";
				qcom,supply-min-voltage = <3000000>;
				qcom,supply-max-voltage = <3000000>;
				qcom,supply-enable-load = <100000>;
				qcom,supply-disable-load = <100>;
				qcom,supply-pre-on-sleep = <0>;
				qcom,supply-post-on-sleep = <20>;
				qcom,supply-pre-off-sleep = <0>;
				qcom,supply-post-off-sleep = <0>;
		};
		qcom,platform-supply-entry2 {
				qcom,supply-name = "vddio";
				qcom,supply-min-voltage = <1800000>;
				qcom,supply-max-voltage = <1800000>;
				qcom,supply-enable-load = <100000>;
				qcom,supply-disable-load = <100>;
				qcom,supply-pre-on-sleep = <0>;
				qcom,supply-post-on-sleep = <20>;
				qcom,supply-pre-off-sleep = <0>;
				qcom,supply-post-off-sleep = <0>;
		};
		qcom,platform-supply-entry3 {
				qcom,supply-name = "vdda";
				qcom,supply-min-voltage = <1200000>;
				qcom,supply-max-voltage = <1200000>;
				qcom,supply-enable-load = <100000>;
				qcom,supply-disable-load = <100>;
				qcom,supply-pre-on-sleep = <0>;
				qcom,supply-post-on-sleep = <0>;
				qcom,supply-pre-off-sleep = <0>;
				qcom,supply-post-off-sleep = <0>;
		};
	};

	mdss_dsi1: qcom,mdss_dsi@fd922e00 {
		compatible = "qcom,mdss-dsi-ctrl";
		label = "MDSS DSI CTRL->1";
		cell-index = <1>;
		reg = 	<0xfd922e00 0x1f8>,
			<0xfd923100 0x2b0>,
			<0xfdf30000 0x108>;
		reg-names = "dsi_ctrl", "dsi_phy", "mmss_misc_phys";
		vdd-supply = <&pm8941_l22>;
		vddio-supply = <&pm8941_l12>;
		vdda-supply = <&pm8941_l2>;
		qcom,mdss-fb-map = <&mdss_fb0>;
		qcom,mdss-mdp = <&mdss_mdp>;
		qcom,platform-strength-ctrl = [ff 06];
		qcom,platform-bist-ctrl = [00 00 b1 ff 00 00];
		qcom,platform-regulator-settings = [03 09 03 00 20 00 01];
		qcom,platform-lane-config = [00 00 00 00 00 00 00 01 97
			00 00 00 00 05 00 00 01 97
			00 00 00 00 0a 00 00 01 97
			00 00 00 00 0f 00 00 01 97
			00 c0 00 00 00 00 00 01 bb];
		qcom,platform-supply-entry1 {
				qcom,supply-name = "vdd";
				qcom,supply-min-voltage = <3000000>;
				qcom,supply-max-voltage = <3000000>;
				qcom,supply-enable-load = <100000>;
				qcom,supply-disable-load = <100>;
				qcom,supply-pre-on-sleep = <0>;
				qcom,supply-post-on-sleep = <20>;
				qcom,supply-pre-off-sleep = <0>;
				qcom,supply-post-off-sleep = <0>;
		};
		qcom,platform-supply-entry2 {
				qcom,supply-name = "vddio";
				qcom,supply-min-voltage = <1800000>;
				qcom,supply-max-voltage = <1800000>;
				qcom,supply-enable-load = <100000>;
				qcom,supply-disable-load = <100>;
				qcom,supply-pre-on-sleep = <0>;
				qcom,supply-post-on-sleep = <20>;
				qcom,supply-pre-off-sleep = <0>;
				qcom,supply-post-off-sleep = <0>;
		};
		qcom,platform-supply-entry3 {
				qcom,supply-name = "vdda";
				qcom,supply-min-voltage = <1200000>;
				qcom,supply-max-voltage = <1200000>;
				qcom,supply-enable-load = <100000>;
				qcom,supply-disable-load = <100>;
				qcom,supply-pre-on-sleep = <0>;
				qcom,supply-post-on-sleep = <0>;
				qcom,supply-pre-off-sleep = <0>;
				qcom,supply-post-off-sleep = <0>;
		};
	};

	mdss_hdmi_tx: qcom,hdmi_tx@fd922100 {
		cell-index = <0>;
		compatible = "qcom,hdmi-tx";
		reg =	<0xfd922100 0x35C>,
			<0xfd922500 0x7C>,
			<0xfc4b8000 0x60F0>;
		reg-names = "core_physical", "phy_physical", "qfprom_physical";

		hpd-gdsc-supply = <&gdsc_mdss>;
		hpd-5v-supply = <&pm8941_mvs2>;
		core-vdda-supply = <&pm8941_l12>;
		core-vcc-supply = <&pm8941_s3>;
		qcom,hdmi-tx-supply-names = "hpd-gdsc", "hpd-5v", "core-vdda", "core-vcc";
		qcom,hdmi-tx-min-voltage-level = <0 0 1800000 1800000>;
		qcom,hdmi-tx-max-voltage-level = <0 0 1800000 1800000>;
		qcom,hdmi-tx-peak-current = <0 0 300000 0>;

		qcom,hdmi-tx-cec = <&msmgpio 31 0>;
		qcom,hdmi-tx-ddc-clk = <&msmgpio 32 0>;
		qcom,hdmi-tx-ddc-data = <&msmgpio 33 0>;
		qcom,hdmi-tx-hpd = <&msmgpio 34 0>;
		qcom,mdss-fb-map = <&mdss_fb1>;
		qcom,msm-hdmi-audio-rx {
			compatible = "qcom,msm-hdmi-audio-codec-rx";
		};
	};

	qcom,mdss_wb_panel {
		compatible = "qcom,mdss_wb";
		qcom,mdss_pan_res = <1920 1080>;
		qcom,mdss_pan_bpp = <24>;
		qcom,mdss-fb-map = <&mdss_fb2>;
	};

	mdss_edp: qcom,mdss_edp@fd923400 {
		compatible = "qcom,mdss-edp";
		reg = <0xfd923400 0x700>,
			<0xfd8c2000 0x1000>;
		reg-names = "edp_base", "mmss_cc_base";
		vdda-supply = <&pm8941_l12>;
		gpio-panel-en = <&msmgpio 58 0>;
		qcom,mdss-fb-map = <&mdss_fb0>;
		gpio-panel-hpd = <&msmgpio 102 0>;
	};
};

/include/ "msm8974-mdss-panels.dtsi"
